package com.zztest.aitestmini.common;

import com.zztest.aitestmini.dto.TokenDto;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author: zhangcheng
 * @Description: 替代Jenkins 缓存token
 * @Date: 2021/3/29/029 20:43
 * @Version: 1.0
 */
@Component //使用注解注入到spring
public class TokenDb {
    //kv 形式存储token
    private Map<String, TokenDto> tokenMap=new HashMap<>();
    //获取在线人数
    public Integer getOnlineUserSize(){
        return tokenMap.size();
    }
   //3、根据token获取TokenDto(userId/userName/defaultJenkinsId/token)
    public  TokenDto getUserInfo(String token){
        if(StringUtils.isEmpty(token)){
            return null;
        }
        return tokenMap.get(token);
    }
    //4、用户登录时新增token和TokenDto
    public void addUserInfo(String token,TokenDto tokenDto){
        if (tokenDto ==null){
            return;
        }
        tokenMap.put(token,tokenDto);
    }
    //5、用户退出时根据token移除TokenDto
    public TokenDto removeUserInfo(String token){
        if(StringUtils.isEmpty(token)){
            return null;
        }
        return  tokenMap.remove(token);
    }
    //6判断token是否有效 true 是 false 否
    public  boolean isLogin(String token){
        return tokenMap.get(token)!=null;
    }


}
